Skip to content

feat(ops): port inline T3 pages and the reporting pack - #29

Merged
Exploitacious merged 2 commits into
mainfrom
feat/team-batch1-render-doctrine
Nov 9, 2026
Merged

Exploitacious merged 2 commits into
mainfrom
feat/team-batch1-render-doctrine

Conversation

@Exploitacious

@Exploitacious Exploitacious commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

Ports five features already in daily use in a private harness into the template, so a copy running in T3 Code works the same way out of the box. One PR, five parts:

  1. SKILLS/t3-html-render (new). In a T3 Code thread it builds one self-contained interactive HTML page for data, a report, findings, a comparison or a plan, checks it with html_preview (728 px dark, 390 px light, zero console errors), and shows it inline with html_render. Ships assets/starter.html, a worked assets/example-report.html on synthetic data (a fictional ExampleOrg), and references/palette.md, whose series colors are validated for colorblind safety on T3's light and dark surfaces.
  2. Render by default in T3 (CONTEXT/how-i-work.md, Reporting to the Operator; core.md Writing; BOOTSTRAP Round E). Replaces "offer a rendered page and wait for a yes" for T3 threads. Hosts without inline pages keep the offer.
  3. Slash-only harness-update and remote-session (disable-model-invocation: true). Both run only when the Operator asks, so their descriptions leave the skill listing. SKILLS/README.md, README.md and AGENTS.md now say to type /harness-update or /remote-session, and how to undo it in a copy.
  4. SKILLS/.trash/ gitignored, with a verify-ops-selftest.sh case that fails without the line.
  5. Doctrine pack (generic rulings only):
    • at most two or three questions in a decision report, in prose; the procedure inline when the next move is the Operator's (Reporting);
    • a deploy is done when it is verified live, third-party updates included (Quality standards);
    • lanes and resources used freely with a clear purpose, with the existing spend gate and cost rule unchanged (P11, core Intake);
    • lanes never run session-close, because a lane inherits the foreman's session id (core Rhythm);
    • the T3 schedule_task wake rule: timers under about 115 minutes, structured schedule shapes, UTC nextRunAt, a one-off task deleting itself (Hosted inside T3 Code);
    • model-roles.md: Opus 5.5's price and API behavior, Sonnet 5.5's catalog figures and overturn condition, Haiku 5.5's 100K price step and how the Stage-1 settings hold that ceiling (and what would break it), Fable's cost in figures, and the T3 Code picker settings (customModels, hiddenModels).

Measurements

Skill listing (name plus description characters, the budget Claude Code caps at about 30,000), over the template's own SKILLS/:

model-invocable entries characters
before 17 3,575
after 16 3,366

harness-update and remote-session leave the listing; t3-html-render joins it.

Checks run locally

  • Every suite in the CI loop (CONTRIBUTING.md step 2), sandboxed as gate.yml runs them, with the current Stage-1 settings bound for verify-ops-selftest.sh: 57 suites plus the two PowerShell suites, failed suites: 0.
  • verify-ops-selftest.sh: the new .trash case failed before the .gitignore line and passes after it.
  • bash -n on the edited shell script.
  • The example page rendered headless at 728 and 390 px with zero console messages (a control page with a deliberate error was captured, so the check can see one).
  • .claude-config/bin/secrets-scan.sh over every changed file: 0 hits added.
  • Private-term scan over the changed files, every commit message, and this title and body: 0 blocking hits.

Port features already in daily use in the private harness into the
template, so a T3 Code copy works the same way out of the box.

- SKILLS/t3-html-render: build one self-contained page, check it with
  html_preview at 728 px dark and 390 px light, and show it inline with
  html_render. Ships a starter, a worked example on synthetic data, and
  a palette validated for colorblind safety on T3's surfaces.
- Reporting: in a T3 thread, data and reports are shown as an inline
  page by default; the offer-and-wait rule stays for hosts without
  inline pages. Core Writing names the format; BOOTSTRAP Round E offers
  the choice.
- harness-update and remote-session: disable-model-invocation, so their
  descriptions leave the skill listing. The template's own listing goes
  from 17 entries and 3,575 characters of name and description to 16
  and 3,366, with t3-html-render added. The why lives in SKILLS/README
  rather than a frontmatter comment, so older Claude Code builds parse
  the header the same way.
- .gitignore: SKILLS/.trash/, where Claude Code's skill sync moves a
  dropped skill. verify-ops-selftest now checks the shipped .gitignore
  covers it (the case failed before the line was added).
- Doctrine: at most two or three questions in a decision report and
  procedures inline (Reporting); verify after any deploy (Quality
  standards); lanes and resources used freely with a clear purpose (P11,
  core Intake); lanes never run session-close (core Rhythm); the T3
  schedule_task wake rule (Hosted inside T3 Code). model-roles gains
  Opus 5.5's API behavior, Sonnet 5.5's overturn condition, Haiku 5.5's
  100K price step and how Stage-1 holds that ceiling, Fable's cost in
  figures, and the T3 Code picker settings.
Review fixes for PR #29: render height clamped to the tool's 80 to 2000 px range; the example page keeps its chart visible with reduced motion and fits tables at 360 px; one-off T3 wakes prefer a native once trigger when offered; model facts carry dated sources and Sonnet 5.5's API effort default is high. Adds t3-html-render-test.py.
@Exploitacious
Exploitacious merged commit 4ced85e into main Nov 9, 2026
8 checks passed
@Exploitacious
Exploitacious deleted the feat/team-batch1-render-doctrine branch November 9, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant